using System;
using ns27;
using Triton.Game.Mono;

namespace Triton.Game.Mapping
{
	[Attribute38("EntityBase")]
	public class EntityBase : MonoClass
	{
		public TagMap m_tags => method_3<TagMap>("m_tags");

		public string m_cardId => method_4("m_cardIdInternal");

		public EntityBase(IntPtr address, string className)
			: base(address, className)
		{
		}

		public EntityBase(IntPtr address)
			: this(address, "EntityBase")
		{
		}

		public bool HasTag(GAME_TAG tag)
		{
			return method_11<bool>("HasTag", new object[1] { tag });
		}

		public TagMap GetTags()
		{
			return method_14<TagMap>("GetTags", Array.Empty<object>());
		}

		public int GetTag(int tag)
		{
			return method_10<int>("GetTag", new Class276.Enum20[1] { Class276.Enum20.I4 }, new object[1] { tag });
		}

		public int GetTag(GAME_TAG enumTag)
		{
			return method_10<int>("GetTag", new Class276.Enum20[1] { Class276.Enum20.ValueType }, new object[1] { enumTag });
		}

		public void SetTag(int tag, int tagValue)
		{
			method_9("SetTag", new Class276.Enum20[2]
			{
				Class276.Enum20.I4,
				Class276.Enum20.I4
			}, tag, tagValue);
		}

		public void SetTag(GAME_TAG tag, int tagValue)
		{
			method_9("SetTag", new Class276.Enum20[2]
			{
				Class276.Enum20.ValueType,
				Class276.Enum20.I4
			}, tag, tagValue);
		}

		public void ReplaceTags(TagMap tags)
		{
			method_9("ReplaceTags", new Class276.Enum20[1] { Class276.Enum20.Class }, tags);
		}

		public bool HasReferencedTag(GAME_TAG enumTag)
		{
			return method_10<bool>("HasReferencedTag", new Class276.Enum20[1] { Class276.Enum20.ValueType }, new object[1] { enumTag });
		}

		public bool HasReferencedTag(int tag)
		{
			return method_10<bool>("HasReferencedTag", new Class276.Enum20[1] { Class276.Enum20.I4 }, new object[1] { tag });
		}

		public int GetReferencedTag(GAME_TAG enumTag)
		{
			return method_10<int>("GetReferencedTag", new Class276.Enum20[1] { Class276.Enum20.ValueType }, new object[1] { enumTag });
		}

		public int GetReferencedTag(int tag)
		{
			return method_10<int>("GetReferencedTag", new Class276.Enum20[1] { Class276.Enum20.I4 }, new object[1] { tag });
		}

		public bool HasCharge()
		{
			return method_11<bool>("HasCharge", Array.Empty<object>());
		}

		public bool ReferencesCharge()
		{
			return method_11<bool>("ReferencesCharge", Array.Empty<object>());
		}

		public bool HasBattlecry()
		{
			return method_11<bool>("HasBattlecry", Array.Empty<object>());
		}

		public bool ReferencesBattlecry()
		{
			return method_11<bool>("ReferencesBattlecry", Array.Empty<object>());
		}

		public bool CanBeTargetedBySpells()
		{
			return method_11<bool>("CanBeTargetedBySpells", Array.Empty<object>());
		}

		public bool CanBeTargetedByHeroPowers()
		{
			return method_11<bool>("CanBeTargetedByHeroPowers", Array.Empty<object>());
		}

		public bool CanBeTargetedByBattlecries()
		{
			return method_11<bool>("CanBeTargetedByBattlecries", Array.Empty<object>());
		}

		public bool HasTriggerVisual()
		{
			return method_11<bool>("HasTriggerVisual", Array.Empty<object>());
		}

		public bool HasInspire()
		{
			return method_11<bool>("HasInspire", Array.Empty<object>());
		}

		public bool IsImmune()
		{
			return method_11<bool>("IsImmune", Array.Empty<object>());
		}

		public bool DontShowImmune()
		{
			return method_11<bool>("DontShowImmune", Array.Empty<object>());
		}

		public bool IsPoisonous()
		{
			return method_11<bool>("IsPoisonous", Array.Empty<object>());
		}

		public bool HasLifesteal()
		{
			return method_11<bool>("HasLifesteal", Array.Empty<object>());
		}

		public bool HasAura()
		{
			return method_11<bool>("HasAura", Array.Empty<object>());
		}

		public bool HasHealthMin()
		{
			return method_11<bool>("HasHealthMin", Array.Empty<object>());
		}

		public bool ReferencesImmune()
		{
			return method_11<bool>("ReferencesImmune", Array.Empty<object>());
		}

		public bool IsEnraged()
		{
			return method_11<bool>("IsEnraged", Array.Empty<object>());
		}

		public bool IsFreeze()
		{
			return method_11<bool>("IsFreeze", Array.Empty<object>());
		}

		public int GetDamage()
		{
			return method_11<int>("GetDamage", Array.Empty<object>());
		}

		public bool IsFrozen()
		{
			return method_11<bool>("IsFrozen", Array.Empty<object>());
		}

		public bool IsAsleep(bool switchedControllers)
		{
			return method_11<bool>("IsAsleep", new object[1] { switchedControllers });
		}

		public bool IsStealthed()
		{
			return method_11<bool>("IsStealthed", Array.Empty<object>());
		}

		public bool ReferencesStealth()
		{
			return method_11<bool>("ReferencesStealth", Array.Empty<object>());
		}

		public bool HasTaunt()
		{
			return method_11<bool>("HasTaunt", Array.Empty<object>());
		}

		public bool ReferencesTaunt()
		{
			return method_11<bool>("ReferencesTaunt", Array.Empty<object>());
		}

		public bool HasDivineShield()
		{
			return method_11<bool>("HasDivineShield", Array.Empty<object>());
		}

		public bool ReferencesDivineShield()
		{
			return method_11<bool>("ReferencesDivineShield", Array.Empty<object>());
		}

		public bool ReferencesAutoAttack()
		{
			return method_11<bool>("ReferencesAutoAttack", Array.Empty<object>());
		}

		public bool IsHero()
		{
			return method_11<bool>("IsHero", Array.Empty<object>());
		}

		public bool IsHeroPower()
		{
			return method_11<bool>("IsHeroPower", Array.Empty<object>());
		}

		public bool IsMinion()
		{
			return method_11<bool>("IsMinion", Array.Empty<object>());
		}

		public bool IsSpell()
		{
			return method_11<bool>("IsSpell", Array.Empty<object>());
		}

		public bool IsWeapon()
		{
			return method_11<bool>("IsWeapon", Array.Empty<object>());
		}

		public bool IsElite()
		{
			return method_11<bool>("IsElite", Array.Empty<object>());
		}

		public bool IsHeroSkin()
		{
			return method_11<bool>("IsHeroSkin", Array.Empty<object>());
		}

		public TAG_CARDTYPE GetCardType()
		{
			return method_11<TAG_CARDTYPE>("GetCardType", Array.Empty<object>());
		}

		public bool IsGame()
		{
			return method_11<bool>("IsGame", Array.Empty<object>());
		}

		public bool IsPlayer()
		{
			return method_11<bool>("IsPlayer", Array.Empty<object>());
		}

		public bool IsExhausted()
		{
			return method_11<bool>("IsExhausted", Array.Empty<object>());
		}

		public bool IsAttached()
		{
			return method_11<bool>("IsAttached", Array.Empty<object>());
		}

		public bool IsRecentlyArrived()
		{
			return method_11<bool>("IsRecentlyArrived", Array.Empty<object>());
		}

		public bool IsObfuscated()
		{
			return method_11<bool>("IsObfuscated", Array.Empty<object>());
		}

		public bool IsSecret()
		{
			return method_11<bool>("IsSecret", Array.Empty<object>());
		}

		public bool IsQuest()
		{
			return method_11<bool>("IsQuest", Array.Empty<object>());
		}

		public bool ReferencesSecret()
		{
			return method_11<bool>("ReferencesSecret", Array.Empty<object>());
		}

		public bool CanAttack()
		{
			return method_11<bool>("CanAttack", Array.Empty<object>());
		}

		public bool CannotAttackHeroes()
		{
			return method_11<bool>("CannotAttackHeroes", Array.Empty<object>());
		}

		public bool CanBeAttacked()
		{
			return method_11<bool>("CanBeAttacked", Array.Empty<object>());
		}

		public bool CanBeTargetedByOpponents()
		{
			return method_11<bool>("CanBeTargetedByOpponents", Array.Empty<object>());
		}

		public bool IsMagnet()
		{
			return method_11<bool>("IsMagnet", Array.Empty<object>());
		}

		public int GetNumTurnsInPlay()
		{
			return method_11<int>("GetNumTurnsInPlay", Array.Empty<object>());
		}

		public int GetNumAttacksThisTurn()
		{
			return method_11<int>("GetNumAttacksThisTurn", Array.Empty<object>());
		}

		public TAG_SPELL_SCHOOL GetSpellPowerSchool()
		{
			return method_11<TAG_SPELL_SCHOOL>("GetSpellPowerSchool", Array.Empty<object>());
		}

		public bool HasSpellPower()
		{
			return method_11<bool>("HasSpellPower", Array.Empty<object>());
		}

		public bool HasHeroPowerDamage()
		{
			return method_11<bool>("HasHeroPowerDamage", Array.Empty<object>());
		}

		public bool IsAffectedBySpellPower()
		{
			return method_11<bool>("IsAffectedBySpellPower", Array.Empty<object>());
		}

		public bool HasSpellPowerDouble()
		{
			return method_11<bool>("HasSpellPowerDouble", Array.Empty<object>());
		}

		public bool ReferencesSpellPower()
		{
			return method_11<bool>("ReferencesSpellPower", Array.Empty<object>());
		}

		public int GetCost()
		{
			return method_11<int>("GetCost", Array.Empty<object>());
		}

		public int GetATK()
		{
			return method_11<int>("GetATK", Array.Empty<object>());
		}

		public int GetHealth()
		{
			return method_11<int>("GetHealth", Array.Empty<object>());
		}

		public int GetDurability()
		{
			return method_11<int>("GetDurability", Array.Empty<object>());
		}

		public int GetArmor()
		{
			return method_11<int>("GetArmor", Array.Empty<object>());
		}

		public int GetAttached()
		{
			return method_11<int>("GetAttached", Array.Empty<object>());
		}

		public TAG_ZONE GetZone()
		{
			return method_11<TAG_ZONE>("GetZone", Array.Empty<object>());
		}

		public int GetZonePosition()
		{
			return method_11<int>("GetZonePosition", Array.Empty<object>());
		}

		public int GetCreatorId()
		{
			return method_11<int>("GetCreatorId", Array.Empty<object>());
		}

		public int GetControllerId()
		{
			return method_11<int>("GetControllerId", Array.Empty<object>());
		}

		public int GetFatigue()
		{
			return method_11<int>("GetFatigue", Array.Empty<object>());
		}

		public int GetWindfury()
		{
			return method_11<int>("GetWindfury", Array.Empty<object>());
		}

		public bool HasWindfury()
		{
			return method_11<bool>("HasWindfury", Array.Empty<object>());
		}

		public bool ReferencesWindfury()
		{
			return method_11<bool>("ReferencesWindfury", Array.Empty<object>());
		}

		public int GetExtraAttacksThisTurn()
		{
			return method_11<int>("GetExtraAttacksThisTurn", Array.Empty<object>());
		}

		public bool HasCombo()
		{
			return method_11<bool>("HasCombo", Array.Empty<object>());
		}

		public bool HasOverload()
		{
			return method_11<bool>("HasOverload", Array.Empty<object>());
		}

		public bool HasDeathrattle()
		{
			return method_11<bool>("HasDeathrattle", Array.Empty<object>());
		}

		public bool ReferencesDeathrattle()
		{
			return method_11<bool>("ReferencesDeathrattle", Array.Empty<object>());
		}

		public bool IsSilenced()
		{
			return method_11<bool>("IsSilenced", Array.Empty<object>());
		}

		public int GetEntityId()
		{
			return method_11<int>("GetEntityId", Array.Empty<object>());
		}

		public bool IsCharacter()
		{
			return method_11<bool>("IsCharacter", Array.Empty<object>());
		}

		public bool IsItem()
		{
			return method_11<bool>("IsItem", Array.Empty<object>());
		}

		public bool IsToken()
		{
			return method_11<bool>("IsToken", Array.Empty<object>());
		}

		public bool HasCustomKeywordEffect()
		{
			return method_11<bool>("HasCustomKeywordEffect", Array.Empty<object>());
		}

		public int GetDisplayedCreatorId()
		{
			return method_11<int>("GetDisplayedCreatorId", Array.Empty<object>());
		}

		public bool IsCoreCard()
		{
			return method_11<bool>("IsCoreCard", Array.Empty<object>());
		}

		public TAG_CLASS GetClass()
		{
			return method_11<TAG_CLASS>("GetClass", Array.Empty<object>());
		}

		public bool IsMultiClass()
		{
			return method_11<bool>("IsMultiClass", Array.Empty<object>());
		}

		public bool IsAllowedInClass(TAG_CLASS classID)
		{
			return method_11<bool>("IsAllowedInClass", new object[1] { classID });
		}

		public TAG_MULTI_CLASS_GROUP GetMultiClassGroup()
		{
			return method_11<TAG_MULTI_CLASS_GROUP>("GetMultiClassGroup", Array.Empty<object>());
		}

		public string GetCardId()
		{
			return method_13("GetCardId");
		}

		public void SetCardId(string cardId)
		{
			method_8("SetCardId", cardId);
		}

		public TAG_CARD_SET GetCardSet()
		{
			return method_11<TAG_CARD_SET>("GetCardSet", Array.Empty<object>());
		}

		public bool HasRush()
		{
			return HasTag(GAME_TAG.RUSH);
		}

		public bool IsTwinspell()
		{
			return method_11<bool>("IsTwinspell", Array.Empty<object>());
		}

		public bool IsSideQuest()
		{
			return method_11<bool>("IsSideQuest", Array.Empty<object>());
		}

		public bool IsSecretOrQuestOrSideQuest()
		{
			return method_11<bool>("IsSecretOrQuestOrSideQuest", Array.Empty<object>());
		}
	}
}
